/*! \file Works on everything needed to add a new project to the system*/


/**     \brief After all the parameters are ready, this function will add the project to the system, with all the users that are allowed to use it and its information
*       \param ProjName unique name of the project
*	\param ProjMembers Vector string with all the users that are allowed to use this project
*	\param ProjDirectoryPath directory of the project
*	\param ManagerID ID of the manager responsible for this project
*       \return Int count for the number of users that are given authority to see and manipulate this project yet don't have an account on the system
*/
int SetupNewCoverageProj(std::string ProjName, std::vector<std::string>& ProjMembers, std::string ProjDirectoryPath,int ManagerID);

/**     \brief Checks if the name submitted for the project is already taken
*       \param ProjName Name they wish for the project
*       \return True if name available, False if name already reserved
*/
bool IsProjNameAvailable(std::string ProjName);

/**     \brief Check if the path of project is available
*       \param ProjDirectoryPath
*       \return True iff available, else False
*/
bool IsProjPathValid(std::string ProjDirectoryPath);

/**     \brief Inserts authority into the DB between users and the project currently created
*       \param Members Vector string of the names of users who are allowed to work on the project
*	\param ProjKey String of the key assigned to the project
*       \return New number of users
*/
int InsertMembersProjectRelation(std::vector<std::string>& Members,std::string ProjKey);
